{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "source": [
    "import os\n",
    "from PIL import Image\n",
    "import numpy as np\n",
    "import cv2\n",
    "from tqdm import tqdm\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "source": [
    "\n",
    "dataset_path = \"/home/xiangjianjian/dataset/gaofen/label\"\n",
    "\n",
    "label_a = os.path.join(dataset_path, \"1319_1.png\")\n",
    "\n",
    "label = Image.open(\"dataset/gaofen/image/1042_1.png\")\n",
    "label = np.asarray(label)\n",
    "\n",
    "plt.imshow(label)"
   ],
   "outputs": [
    {
     "output_type": "error",
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'dataset/gaofen/image/1042_1.png'",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_2933901/1351008081.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mlabel_a\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdataset_path\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"1319_1.png\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mlabel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mImage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"dataset/gaofen/image/1042_1.png\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      6\u001b[0m \u001b[0mlabel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/.conda/envs/torch-1.8.1/lib/python3.7/site-packages/PIL/Image.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(fp, mode, formats)\u001b[0m\n\u001b[1;32m   2966\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2967\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2968\u001b[0;31m         \u001b[0mfp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbuiltins\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"rb\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2969\u001b[0m         \u001b[0mexclusive_fp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2970\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'dataset/gaofen/image/1042_1.png'"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "source": [
    "\n",
    "\n",
    "\n",
    "# 定义全局变量\n",
    "PATCH_SIZE = 17  # 切片尺寸\n",
    "OUTPUT_CLASSES = 16  # 输出9类地物\n",
    "TEST_FRAC = 0.50  # 用来测试数据的百分比\n",
    "ROOT_PATH = '/home/xiangjianjian/dataset/WHU-Hi/'\n",
    "DATA_TYPE = 'WHU_Hi_HanChuan'\n",
    "\n",
    "img_size = 224\n",
    "new_data_path = os.path.join(ROOT_PATH, 'patch', DATA_TYPE + str(img_size))  # 存放数据路径 patch是文件夹名称\n",
    "print(new_data_path)\n",
    "img, gt = load_data(ROOT_PATH, DATA_TYPE)\n",
    "# img = np.transpose(img, (1, 2, 0))\n",
    "# for i in range(27):\n",
    "#     temp = img[i]\n",
    "#     temp_max = np.max(temp)\n",
    "#     if temp_max > 240 or temp_max < 2:\n",
    "#         print(temp_max)\n",
    "#         print(i)\n",
    "\n",
    "# img = pad(img, int((PATCH_SIZE - 1) / 2))\n",
    "# print(img.shape)\n",
    "# createdData(img, gt)\n",
    "# crop_img(img, gt, DATA_TYPE, new_data_path, img_size=img_size)\n",
    "# print(new_data_path)\n",
    "# random_crop(img, gt, DATA_TYPE, new_data_path + 'random',img_size=img_size)\n",
    "img = np.transpose(img, (1, 2, 0))\n",
    "\n"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "/home/xiangjianjian/dataset/WHU-Hi/patch/WHU_Hi_HanChuan224\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "source": [
    "\n",
    "plt.imshow(img[:, :, [80,60,35]])"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
     ]
    },
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7fd412456bd0>"
      ]
     },
     "metadata": {},
     "execution_count": 40
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  }
 ],
 "metadata": {
  "orig_nbformat": 4,
  "language_info": {
   "name": "python",
   "version": "3.7.11",
   "mimetype": "text/x-python",
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "pygments_lexer": "ipython3",
   "nbconvert_exporter": "python",
   "file_extension": ".py"
  },
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.7.11 64-bit ('torch-1.8.1': conda)"
  },
  "interpreter": {
   "hash": "0439cc1fb3ca274a7e2df5ee278b62dcfe3f14c761deedd8586e63968912a454"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}